this._unloadedExtensions = new Map();
this._enabledExtensions = [];
this._extensionOrder = [];
+ this._checkVersion = false;
Main.sessionMode.connect('updated', this._sessionUpdated.bind(this));
}
// Default to error, we set success as the last step
extension.state = ExtensionState.ERROR;
- let checkVersion = !global.settings.get_boolean(EXTENSION_DISABLE_VERSION_CHECK_KEY);
-
- if (checkVersion && ExtensionUtils.isOutOfDate(extension)) {
+ if (this._checkVersion && ExtensionUtils.isOutOfDate(extension)) {
extension.state = ExtensionState.OUT_OF_DATE;
} else if (!this._canLoad(extension)) {
this.logExtensionError(extension.uuid, new Error(
}
_onVersionValidationChanged() {
+ const checkVersion = !global.settings.get_boolean(EXTENSION_DISABLE_VERSION_CHECK_KEY);
+ if (checkVersion === this._checkVersion)
+ return;
+
+ this._checkVersion = checkVersion;
+
// Disabling extensions modifies the order array, so use a copy
let extensionOrder = this._extensionOrder.slice();
global.settings.connect('writable-changed::%s'.format(DISABLED_EXTENSIONS_KEY),
this._onSettingsWritableChanged.bind(this));
+ this._onVersionValidationChanged();
+
this._enabledExtensions = this._getEnabledExtensions();
let perUserDir = Gio.File.new_for_path(global.userdatadir);